*** empty log message ***
authorJim Blandy <jimb@redhat.com>
Sun, 14 Mar 1993 05:50:49 +0000 (05:50 +0000)
committerJim Blandy <jimb@redhat.com>
Sun, 14 Mar 1993 05:50:49 +0000 (05:50 +0000)
lisp/emacs-lisp/lucid.el

index 36600f540b6d01d1f5341b2d709d3122619640cc..6412b0bc8f48a8cd8534041cb589f56e2e70f673 100644 (file)
       (if (eq (nth 2 plist) prop)
          (setcdr (cdr plist) (nthcdr 4 plist)))
       (setq plist (cdr (cdr plist))))))
+
+(defun map-keymap (function keymap)
+  "Call FUNCTION for every binding in KEYMAP.
+This includes bindings inherited from a parent keymap.
+FUNCTION receives two arguments each time it is called:
+the character (more generally, the event type) that is bound,
+and the binding it has."
+  (while (consp keymap)
+    (if (consp (car keymap))
+       (funcall function (car (car keymap)) (cdr (car keymap)))
+      (if (vectorp (car keymap))
+         (let ((i (length (car keymap)))
+               (vector (car keymap)))
+           (while (>= i 0)
+             (funcall function i (aref vector i))
+             (setq i (1- i))))))
+    (setq keymap (cdr keymap))))